package com.campus_information_portal.service;

import com.campus_information_portal.entity.MarkCondition;
import com.campus_information_portal.entity.Student;
import com.campus_information_portal.util.Message;
import com.campus_information_portal.util.Msg;
import com.itextpdf.text.DocumentException;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.net.UnknownHostException;
import java.util.List;

/**
 * @author 20155883 万珊
 * @description 学生业务接口
 * @project_name StudentService
 * @package com.campus_information_portal.service
 * @create 2018-04-19 15:31
 **/
@Service
public interface StudentService {
    /**
     * @param stu_num
     * @Description 根据Student表中的学生学号查询学生个人信息
     * @author 20155883 万珊
     * @methodName queryStudentByStuNum
     * @returnType  Message
     * @create 2018/4/26 8:45
     **/
    Message queryStudentByStuNum(int stu_num);

    /**
     * @param stu_num
     * @Description 查询学号是否存在
     * @author 20155880 房雁颖
     * @methodName queryStuNum
     * @returnType Message
     * @create 2018/4/26 8:45
     **/
    Message queryStuNum(int stu_num);

    /**
     * @param student
     * @Description 增加一个学生（学号+密码）
     * @author 20155880 房雁颖
     * @methodName addStudent
     * @returnType Message
     * @create 2018/4/26 15:26
     **/
    Message addStudent(Student student);


    /**
     * @param student
     * @Description 修改学生信息表（姓名，性别，身份证，出生年月，民族，电话，籍贯）
     * @author 20155880 房雁颖
     * @methodName updateStudent
     * @returnType Message
     * @create 2018/4/26 15:26
     **/
    Message updateStudent(Student student);

    /**
     * @param stu_num
     * @Description 删除学生信息表【警告！这是真删！无特殊情况不可调用此接口！】
     * @author 20155883 万珊
     * @methodName deleteStudent
     * @returnType Message
     * @create 2018/4/26 15:26
     **/
    Message deleteStudent(int stu_num);

    /**
     * @Description 查询全部学生
     * @author 20155883 万珊
     * @methodName queryStudent
     * @returnType Message
     * @create 2018/4/26 8:45
     **/
    Message queryStudent();

    /**
     * @Description 查询全部年级（除去重复字段）
     * @author 20155883 万珊
     * @methodName queryGrade
     * @returnType List
     * @create 2018/4/26 8:45
     **/
    List<String> queryGrade();

    /**
     * @Description 跟据学号查学生id
     * @author 20155884 王晓阳
     * @methodName
     * @param
     * @returnType
     * @create 2018/5/27 14:13
     **/
    Msg<Student> queryStuIdByStuNum(int stuNum);

    /**
     * @Description 根据学生id查找学生信息
     * @author 20155884 王晓阳
     * @methodName
     * @param
     * @returnType
     * @create 2018/5/27 23:19
     **/
    Msg<Student> queryStudentByStuId(int stuInfoId);

    /**
     * @param
     * @Description 查找所有学生id， 学号，姓名
     * @author 20155884 王晓阳
     * @methodName
     * @returnType
     * @create 2018/5/29 20:52
     **/
    List<MarkCondition> queryAllStudent();

    /**
     * @Description 下载生成学生信息表
     * @author 20155883 万珊
     * @methodName download
     * @param
     * @returnType Message
     * @create 2018/5/21 17:27
     **/
    Message download(String stuNum, String stuName, String stuSex, String stuIdcardNum, String stuBirthday, String stuNation, String stuPoli, String stuPhone, String stuNativeplace, String stuGrade, String cet46Grade,String academyName) throws IOException, DocumentException;
}
